iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
0
自我挑戰組

30 天的 ShellScript 教室解決開發者的困擾系列 第 6

[鐵人賽第06天] 下指令的小技巧(*與{})與運作方式

  • 分享至 

  • xImage
  •  

今天講大家可能都用過的 * 號與 * 號有點類似的 {} 號,買東西被雷實在

首先 * 號應該大家都用過,但是我要先自首從高職開始開 MINECRAFT 伺服器給同學們玩就常常用到指令界面, * 號早就在高職階段早就用過無數次,我到大二還大三才搞清楚 * 號的運作方式。

高職階段,我一直以為 * 號是 rmls 等指令可以接受的萬用字元。到了某天才知道,我們打 * 其實是在 Shell 的時候, Shell 會把 * 號展開,變成一長串,最後才執行 rm 或是 ls 之類的指令。

{} 除了搭配 $ 使用,也可以中間塞 , 使用,使用方式如下:
cp -a /etc/{nginx,php} ~/backup/

shell 會把 /etc/{nginx,php} 展開成 /etc/nginx /etc/php ,所以執行的指令會是 cp -a /etc/nginx /etc/php ~/backup/

{} 除了用在複製比較深的目錄中的兩三個項目,也有另外一種方便的方式:
mv myProject{,-old}

這樣 shell 會展成 mv myProject myProject-old ,就不用狂按 Tab 來打兩次 myProject 啦。

那如果是很深的路徑裡面的一堆檔案呢?
rm /tmp/{*.tmp,*.old}

這個也可以喔, {} 可以跟 * 號混著用!


我是誰?
我是 dd-han ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。


上一篇
[鐵人賽第05天] 實戰:我的 adb 勒!
下一篇
[鐵人賽第07天] 介紹 stdout / stderr
系列文
30 天的 ShellScript 教室解決開發者的困擾23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言